Gitcoin Passport
Public.icon
https://gyazo.com/1506fe00118b312bf03ac2e9018b8412
https://www.youtube.com/watch?v=OyGj10pQfLY&ab_channel=GitcoinMedia
Gitcoin Passport is an app built by Gitcoin on the Ceramic Network, where users can collect various ID authentications (called Stamps) on both Web2 and Web3.
Why did Gitcoin create Passport?
Many systems that aim to democratically determine outcomes, such as Gitcoin's Quadratic Funding, require users to be unique individuals. Therefore, if a user controls multiple IDs, these systems become vulnerable to gambling. It is crucial to prove that a user is a well-intentioned actor participating with a single ID to achieve legitimate results.
Beyond Gitcoin's own use, there is a growing need for robust and private identity and reputation systems in Web3. We built Gitcoin Passport to enable all projects to benefit from our efforts to make Gitcoin's Grants program a legitimate and neutral public good funding ecosystem.
Who is Gitcoin Passport for?
Humans
You are not an asset, an NFT, or a wallet. We believe that people are embedded in networks of relationships and communities. To achieve the best possible future we can imagine, people need tools to own and control their data and carry the internet with them. Passport is a way to collect data points that help prove who you are and what communities you travel with, and it helps projects like Gitcoin build the most transparent, legitimate, and fair governance systems.
Play to Earn, Professional reputation and accreditation, and Digital Democracy all depend on a system of one account per person. Currently, this is an open problem area, and Gitcoin Passport is our first best attempt to establish a standard way of providing evidence of humanity to these systems. By integrating Passport into your application, you can reduce the surface area for Sybil attacks, enable new mechanisms for recognizing achievements or governance, and build reusable "reputation Lego" that users can carry around in the Web3 ecosystem.
Community
Allowing members of a community to self-declare their membership using Gitcoin Passport is a powerful new way to build toward a decentralized society as recently theorized by Vitalik, Glen, and Puja in their recent paper (https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4105763). We believe that there exist powerful new democratic mechanisms that can help the ecosystem thrive by giving users the ability to collect verifiable and safe data points, but that this identity represents not only their identity but also their connection with the community. If you have a community with members interested in using Passport, please reach out to us. Passport Lifecycle
Gitcoin Passport adopts a self-sovereign view of user data, and users can build Passports independent of the requirements of specific applications.
Passport Lifecycle
At its core, Passport is a self-sovereign data collection built on the Ceramic Network, in accordance with DID (Decentralized Identifier) and VC (Verifiable Credential) specifications. This data is intended for wide interoperability with any system wishing to issue or consume VCs to establish an individual's "personality" through direct ownership of multiple accounts (Twitter, BrightID) or web3 assets (ENS). In the future, we intend to further extend this Passport to allow individuals to collect stamps showing their participation in various groups and communities.
Step-by-Step - Passport Lifecycle
Present your passport.
In this example, let's consider an app that integrates with Gitcoin Passport and requires users to have a set of specific stamps (VCs) to interact with its system.
When the user arrives at this app, they are prompted to connect their passport. The user signs a message to their passport management wallet and allows the app access to their public key, at which point the app can look up their DID (https://github.com/w3c-ccg/did-pkh). The app then attempts to retrieve passport data from Ceramic.
If the passport is not found, the app can notify the user to create a passport in the frontend, like so:
If the passport is found, the app can read and score it. If the user's passport contains the stamps the app requires, the flow ends and the user can safely participate in the app's ecosystem. Otherwise, the user may be prompted to add stamps to their passport before proceeding.
Creating and managing passports.
If the user does not have a passport or does not have enough stamps to meet the app's needs, they will be guided to an instance of the Passport app to manage their passport. Gitcoin hosts instances of the Passport app at the following locations:
Gitcoin's Passport app instances integrate identity and verification stamps needed to build Gitcoin Trust Bonuses. Trust Bonuses give users an incentive to provide multiple stamps as evidence that they are a single user, with increased weight in the matching ability of the Quadratic Funding mechanism used in Gitcoin Grants as a reward.
When connecting to the Passport application, the user signs a message allowing the application to control their Ceramic stream. New users can create a blank passport, and existing users can view their passport data and existing stamps. From there, they can continue to manage their passport, link new services, and chain stamps to enrich their verifiable online identity.
Scoring and verifying passports.
When presented with a passport in the app, the app can easily read the contents (see SDK Reader) and determine whether the user has collected the necessary stamps to continue in the system. However, it should be noted that additional steps are required to verify the records of Verifiable Credentials to ensure that they have been issued correctly. VC verification is performed using the Verifier package within the SDK.
Integrated apps should comply with this process to confirm that a passport containing an invalid VC is not presented, that the VC is issued by a trusted server, and that the same VC does not represent the same certificate and is created in multiple passports, representing a unique third-party record (credentialSubject Hash holds a unique value salted one-way hash from the underlying certificate for this purpose).
Upon arrival of the passport app, you will be prompted to connect your Ethereum wallet.
It is good to know that your passport is associated with your Ethereum address, so please check the wallet address you use when presenting your passport.
With your wallet connected, you'll be prompted to sign a message in the wallet to allow the app to sign in to your Ethereum account and access Ceramic data.
When using the Passport app for the first time, a new Passport is created on Ceramic.
For repeat use of the Passport app, Passport information is read from the Ceramic network and you can see the stamps you previously saved.
Collecting stamps
Once the connection is complete, you can collect various stamps and add them to your passport.
The flow for collecting stamps varies, but the basic flow remains the same.
The Passport app will guide you through connecting with various ID providers (such as Google OAuth). In each flow, the Passport app will ask you to allow access to your account data.
Once the connection is established, the Passport app communicates with our IAM server to issue a signed verifiable credential. This credential represents ownership of the connected account and can let others know that your passport is the unique owner of the connected account.
The verifiable credential is stored in your passport and can be used in third-party apps where you present your passport.
It's worth noting that some ID providers have their own verification process, which may take time to complete. However, once authenticated there, collecting stamps for that service should be quick and easy.
For questions about your data privacy, please see our FAQ.
Presenting your Passport
Gitcoin has integrated Gitcoin Passport into the Trust Bonus score, allowing users to boost the matching weight of Quadratic Funding by presenting a passport with many stamps.
The Passport project is only useful if there are places that accept your passport and read it.
Gitcoin has also integrated Passport to power Gitcoin Trust Bonus. You can see the flow of Trust Bonus in your profile.
Example use of Passport Reader
Upon arriving at the Passport Reader app, you will be prompted to connect your wallet.
It's worth noting that your passport is associated with your Ethereum address, so make sure you're using the same address you used when creating your passport.
Once your wallet is connected, the reader application can locate and read your passport from the Ceramic Network, and verify that you are the rightful owner of each stamp (verifiable credential) in your passport.
Additionally, the application can verify that verifiable credentials were issued correctly, and applications that read passports and verifiable credentials can return requests to the server that issued the verifiable credentials to confirm that they were issued by that system (which they should!).
Let's give it a try for now! tkgshn.icon*3
https://gyazo.com/8f5a34ce3c4b9d661a3fa72b26dd8ada